1. Bagaimana cara mengubah base map pada leaflet?
Kita dapat menggunakan fungsi addProviderTiles() lalu memilih providers yang diinginkan
leaflet(data = temp) %>%
addProviderTiles(providers$Esri) %>%
addMarkers(lng = ~longitude, lat = ~latitude)leaflet(data = temp) %>%
addProviderTiles(providers$Esri.WorldImagery) %>%
addMarkers(lng = ~longitude, lat = ~latitude)Untuk mengetahui detail tampilan setiap providers dapat dilihat pada link berikut ini Leaflet Providers Preview.
2. Bagaimana cara untuk membuat leaflet interactive dengan pilihan provider pada leaflet tersebut?
Kita dapat menggunakan Leaflet’s Layer Control untuk mengatur provider yang akan dipilih.
leaflet(data = temp) %>%
addTiles(group = "Esri") %>%
addProviderTiles(providers$Esri.WorldImagery,group = "Esri World Imagery") %>%
addProviderTiles(providers$OpenTopoMap, group = "Open Topo Map") %>%
addMarkers(lng = ~longitude, lat = ~latitude) %>%
addLayersControl(baseGroups = c("Esri", "Esri World Imagery",
"Open Topo Map"),
options = layersControlOptions(collapsed = FALSE))3. Bagaimana mengatasi titik lokasi yang cukup banyak dan terlihat overlap pada leaflet?
loca <- data.frame(latitude=runif(200, min = -32.162, max=-30.0522),
longitude=runif(200, min=141.33, max=150.38))
leaflet(data = loca) %>%
addProviderTiles(providers$Esri) %>%
addMarkers(lng = ~longitude,
lat = ~latitude)Untuk memperoleh tampilan yang lebih rapih ketika memiliki banyak titik lokasi, kita dapat menggunakan parameter clusterOptions.
leaflet(data = loca) %>%
addProviderTiles(providers$Esri) %>%
addMarkers(lng = ~longitude,
lat = ~latitude,
clusterOptions = markerClusterOptions()) 4. Bagaimana cara untuk memberikan markers untuk identifikasi titik pada leaflet?
Untuk memberikan icon markers pada leaflet, kita dapat menggunakan function addAwesomeMarkers() dan juga kita perlu tentukan icon yang akan digunakan, untuk mengetahui macam-macam icon yang digunakan dapat di liat pada link berikut Font Awesome.
icons <- awesomeIcons(icon = "street-view",
iconColor = "pink",
markerColor = "black",
library = "fa")
leaflet(data = dat) %>%
addProviderTiles(providers$Esri) %>%
addMarkers(lng = ~longitude, lat = ~latitude) %>%
addAwesomeMarkers(icon = icons)5. Bagaimana cara memetakan point markers berdasarkan ukuran?
Berikut ini akan dilakukan pemetaan besaran gempa untuk setiap wilayah, kita ingin memetakan point berdasarkan besarnya gempa yang terjadi. Data yang akan digunakan adalah sebagai berikut:Untuk memetakan point berdasarkan besaran dapat menggunakan function addCircleMarkers() dan untuk mengatur besaran terhadap circle yang ingin ditampilkan gunakan parameter radius. Lingkaran merah tersebut menandakan semakin besar lingkaran artinya ukuran magnitude gempa pada titik tersebut besar.
leaflet(quakes) %>%
addProviderTiles("Esri.WorldTopoMap") %>%
addCircleMarkers(lng = ~longitude,
lat = ~latitude,
popup =paste0("Magnitude: ", quakes$mag,
"<br>Date: ", quakes$time),
fillColor = "red",
color = "red",
weight = 1,
fillOpacity = 0.25,
radius = 1.75^quakes$mag
) 6. Bagaimana cara membuat spatial map menggunakan leaflet?
Untuk membuat spatial map menggunakan leaflet, terlabih dahulu download shapefile pada link berikut TM World Borders
library(leaflet)
library(raster)
# read shapefile
shape <- shapefile("data/02-DVIP/TM_WORLD_BORDERS_SIMPL-0.3/TM_WORLD_BORDERS_SIMPL-0.3.shx")
class(shape)#> [1] "SpatialPolygonsDataFrame"
#> attr(,"package")
#> [1] "sp"
# cleaning data
shape@data$POP2005 <- as.numeric(shape@data$POP2005)
# create a color pallete
pal <- colorNumeric("viridis", NULL)
leaflet(shape) %>%
addProviderTiles("Esri.NatGeoWorldMap") %>%
addPolygons(fillColor = ~pal(POP2005),
fillOpacity = 1,
label = paste0(shape@data$NAME, ": ", shape@data$POP2005)) %>%
addLegend(pal = pal,
values = ~POP2005,
opacity = 1.0,
title = "Population in 2005")